/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package testes;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import modelo.Pessoa;
import java.util.ArrayList;


import java.util.Collection;

import javax.persistence.EntityManager;
import javax.persistence.Persistence;


/**
	* @author fonini
*/
public class PessoaDAO {
	private EntityManager em;

	public PessoaDAO(){
		this.em = Persistence.createEntityManagerFactory("SigepiPU").createEntityManager();
	}
	
	
	public void inserir(Pessoa pessoa){
	/*
            // Instanciamos um objeto Pessoa, setando nome e data de nascimento
		Pessoa p1 = new Pessoa();
		p1.setNome("Jonnas Fonini");
		p1.setAniversario(new Date());
	
		Pessoa p2 = new Pessoa();
		p2.setNome("Luana Fonini");
		p2.setAniversario(new Date());
	
		Pessoa p3 = new Pessoa();
		p3.setNome("Fulano de Tal");
		p3.setAniversario(new Date());
	*/
		// Iniciamos a transaÃ§Ã£o
		em.getTransaction().begin();
		// Aqui persistimos os objetos recÃ©m criados
		em.persist(pessoa);
	//	em.persist(p2);
	//	em.persist(p3);
		// E aqui efetuamos definitivamente a transaÃ§Ã£o
		em.getTransaction().commit();
	}
	
	
	public ArrayList<Pessoa>listar() {

            Collection <Pessoa> lista = em.createQuery("from Pessoa").getResultList();
            ArrayList<Pessoa> alPessoa = new ArrayList<Pessoa>();
            for (Pessoa pessoa : lista){
                    alPessoa.add(pessoa);		    			
            }
            return alPessoa;
    }
        
        public Pessoa getPessoa(int id) {
        ArrayList<Pessoa> alPessoa = new ArrayList<Pessoa>();
        Pessoa pessoa = new Pessoa();
        alPessoa = listar();
         
        for (int i=0;i<alPessoa.size();i++) {
            if (alPessoa.get(i).getId() == id) {
                pessoa = alPessoa.get(i);
                em.getTransaction().begin();
                em.merge(pessoa);                
                em.getTransaction().commit();                               
            }                
        }
        return pessoa;        
    }
        
        
        
}
